Technical Field
This application relates generally to overlay networking and, in particular, to front-end optimization (FEO) techniques that are used in association with an overlay network (e.g., a content delivery network (CDN)) to accelerate web pages.
Brief Description of the Related Art
Distributed computer systems are well-known in the prior art. One such distributed computer system is a “content delivery network” or “CDN” that is operated and managed by a service provider. The service provider typically provides the content delivery service on behalf of third parties (customers) who use the service provider's infrastructure. A distributed system of this type typically refers to a collection of autonomous computers linked by a network or networks, together with the software, systems, protocols and techniques designed to facilitate various services, such as content delivery, web application acceleration, or other support of outsourced origin site infrastructure. A CDN service provider typically provides service delivery through digital properties (such as a website), which are provisioned in a customer portal and then deployed to the network. A digital property typically is bound to one or more edge configurations that allow the service provider to account for traffic and bill its customer.
An overlay network such as described above may incorporate or interoperate with a Front-End Optimization (FEO) scheme. FEO is the process of accelerating web pages by modifying the HTML and resources on them. The goal is to eliminate bottlenecks and inefficiencies in the front-end of a site that is using the overlay. In FEO, there are numerous specific optimizations that may be employed, and they aim to do one or more of the following: reduce the number of HTTP requests required to load the page, downloading more data in one request instead; reduce the total size of the web page and its parts by using more efficient formats, improving cache-ability and removing unnecessary content; and accelerating rendering by making the browser load resources in a different order or timing, e.g., preventing the ability of a third party script from delaying everything else on the page.